# 作者: 陈其志 
# 2025年02月20日21时31分59秒 
# 2716847110@qq.com
class Tool:
    # 类属性一般写到类名的下面，复合业界规范
    count = 0  # 类属性对所有的对象属性是可见的，对象方法可以调用类属性

    def __init__(self, name):
        self.name = name
        Tool.count += 1

    # 类方法，一般在类方法中访问类属性
    @classmethod  # 类属性装饰器
    def show_tool_count(cls):  # 装饰就写cls,cls就代指类名
        print(cls.count)

    @staticmethod
    def help():
        print('打印帮助')

    @staticmethod
    def eat(self):  # 静态方法装饰器在这种地方用，不访问实例属性，方法，类属性，类方法
        print('eat')


if __name__ == '__main__':
    # 创建工具对象
    tool1 = Tool('镰刀')
    tool2 = Tool('锤子')
    tool3 = Tool('拖拉机')
    print(Tool.count)

    # 不符合业界规范
    tool1.count = 99  # 这里实际上是给tool1对象新增了一个对象属性count
    print(tool1.count)
    print(Tool.count)
    # 调用类方法
    Tool.show_tool_count()
    # 打印类名
    print(Tool)
